// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const openid = wxContext.OPENID

  console.log('[getOrders] 开始查询, 用户:', openid, '查询条件:', event);

  // 构建查询条件
  let query = {
    openid: openid
  }

  // 如果指定了状态，则添加到查询条件
  if (event.status && event.status !== 'all') {
    query.status = event.status;
    console.log('[getOrders] 按状态过滤:', event.status);
  }

  try {
    // 获取订单列表
    console.log('[getOrders] 执行查询:', JSON.stringify(query));
    const orderRes = await db.collection('orders')
      .where(query)
      .orderBy('orderTime', 'desc')
      .get();

    console.log('[getOrders] 查询结果数量:', orderRes.data.length);

    // 处理返回数据，确保日期字段正确
    const formattedOrders = orderRes.data.map(order => {
      // 确保所有订单都有正确的状态
      if (!order.status) {
        order.status = 'pending';
      }

      // 格式化订单时间为可读字符串
      if (order.orderTime) {
        if (typeof order.orderTime === 'object' && order.orderTime.toJSON) {
          order.orderTimeStr = new Date(order.orderTime.toJSON()).toLocaleString();
        } else {
          order.orderTimeStr = new Date(order.orderTime).toLocaleString();
        }
      }

      return order;
    });

    console.log('[getOrders] 返回处理后的订单数据');
    return formattedOrders;
  } catch (error) {
    console.error('[getOrders] 查询失败:', error);
    return {
      success: false,
      error: error.message || '获取订单数据失败'
    }
  }
} 